home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 07 CP_M / JTCP12.LBR / JETCP12.DZC / JETCP12.DOC
Encoding:
Text File  |  1991-06-08  |  7.5 KB  |  171 lines

  1.                                     JETCP+
  2.                              Jet Copy for Z3PLUS
  3.                           08 Jun 91 by Carson Wilson
  4.                          Sysop, Antelope Freeway RAS
  5.                             312/764-5162, Chicago
  6.  
  7. NOTICE: JetCP is copyright 1990 by Carson Wilson, all rights reserved.  You 
  8. may not redistribute the files in this library individually or charge money 
  9. for JetCP without the written permission of Carson Wilson.  The author takes 
  10. no responsibility for consequences of the use or inability to use JetCP.
  11.  
  12.  
  13.                          1.  WHAT IS IT?
  14.                          2.  USING JETCP.
  15.                          3.  PATCHING JETCP.
  16.                          4.  ERROR HANDLING.
  17.                          5.  PERFORMANCE.
  18.  
  19.  
  20. 1.  WHAT IS IT?
  21.  
  22. JetCP was designed as a fastest-possible speed file copy program for Z3PLUS.  
  23. As such, it does not include many of the amenities found in more sophisticated 
  24. (but slower) copy programs, such as multiple file capability, copy 
  25. verification, or user-query options.  While these options are sometimes 
  26. convenient, they take up memory which can otherwise be used as copy buffer 
  27. space.  In any case, I find that the sophistication of Z System largely rules 
  28. out the need for sophisticated utility programs.  For example, to do multiple 
  29. copies with JetCP, I simply invoke JetCP as part of a ZFILER Group Macro 
  30. command, or use Dreas Nielsen's remarkable FOR/NEXT utility to generate 
  31. multiple copy commands.  Similar techniques can be used to do user-prompted 
  32. copying and verification.
  33.  
  34. Another significant feature of JetCP is its ability to preserve CP/M Plus 
  35. datestamps.  The physical datestamp of the copy matches that of the copied 
  36. file.  However, JetCP does NOT read directory labels, so you should be using 
  37. the same selection of active logical stamps on both destination and source 
  38. disks to avoid confusing, CP/M Plus Creation stamps with Last Access stamps.  
  39. You may also override datestamping with the "/D" option, or by patching JetCP 
  40. (see below).
  41.  
  42. JetCP achieves high speed throughput chiefly by making use of several 
  43. techniques not available under other operating systems, specifically 
  44. multi-sector i/o and advanced BDOS error handling.  In addition, copy buffers 
  45. are as large as memory will allow, further speeding copy operation.  As a 
  46. final offering to Mercury, JetCP doesn't attempt to make the destination file 
  47. until it has finished reading the input file or has filled its read buffer.  
  48. The algorithm is thus
  49.  
  50.      open input file
  51.      read input file
  52.      make output file
  53.      write output file
  54.  
  55. rather than the more common
  56.  
  57.      open input file
  58.      open output file
  59.      read input file
  60.      write output file
  61.  
  62. While this makes JetCP slower than most copy programs at discovering a full 
  63. destination disk or directory, most of the time it permits greater speed by 
  64. minimizing drive reselection.
  65.  
  66.  
  67. 2.  USING JETCP.
  68.  
  69. There really isn't too much to using JetCP.  JetCP runs in either help mode if 
  70. invoked as 
  71.  
  72.      JETCP
  73.       or
  74.      JETCP //
  75.       or
  76.      JETCP ?
  77.  
  78. or copies files if invoked as
  79.  
  80.      JETCP [dir:]ufn [dir:][ufn] [[/]D]
  81.  
  82. The current defaults are assumed for all items other than the "ufn" which must 
  83. be included and is the unambiguous name of the source file to be copied.  If 
  84. you just specify a directory for output, a file of the same name is produced 
  85. at the destination directory.  The "/D" option toggles datestamping off by 
  86. default, or on if you have patched JetCP not to preserve datestamps by 
  87. default, which brings us to...
  88.  
  89.  
  90. 3.  PATCHING JETCP.
  91.  
  92. If you don't want datestamping (there IS a time penalty involved, as Z3PLUS 
  93. must relog the destination disk after every copy), you can turn this option 
  94. OFF by default by changing the byte after the ASCII label "[OPTIONS>" at the 
  95. start of JETCP.COM from 0FFh to 000h.  Now JetCP will preserve stamps only if 
  96. you give the "/D" option on the command line.
  97.  
  98.  
  99. 4.  ERROR HANDLING.
  100.  
  101. Pardon my boast, but JetCP's error handling is among the best.  Several errors 
  102. merely cause JetCP to prompt you for a "Y" or "N" response.  If the target 
  103. file exists, JetCP rings the terminal's bell and asks
  104.  
  105.  Erase destination file (Y/N)? N
  106.  
  107. If you hit any key other than "Y" or "y" the copy operation is aborted.  If 
  108. the target file turns out to be Read-Only, JetCP rings again and further asks
  109.  
  110.  Erase R/O file (Y/N)? N
  111.  
  112. Again, any response other than a YES is taken as a NO, and the operation is 
  113. cancelled.
  114.  
  115. While copying, several problems may develop, the most common of which is 
  116. probably running out of space.  In this case, JetCP chains to the Z-SYSTEM 
  117. ERROR HANDLER (make sure you are using one!), with error code 11 decimal.  
  118. If you are using ZERR, you may cancel the operation, prepend some other 
  119. commands to the operation, or restart the operation.  ZERR also allows you to 
  120. optionally cancel the rest of any pending ZEX or SUBMIT script, which is often 
  121. very important.  Moral: INSTALL AN ERROR HANDLER!  The best currently 
  122. available is in ZERR12.LBR on most Z-Nodes.
  123.  
  124. Several other errors may also occur.  Most chain to the current error handler 
  125. with appropriate messages (duplicate or ambiguous filespecs, illegal directory 
  126. specification, etc.).  Another sort of error occurs during filestamp transfer, 
  127. and is usually not fatal.  If there was a problem copying filestamps, JetCP 
  128. displays one of the following messages, and continues the copy: 
  129.  
  130.      Set stamp error: BIOS write
  131.      Set stamp error: BIOS read
  132.      Set stamp error: drive invalid
  133.      Set stamp error: BIOS sectors > 1k
  134.      Set stamp error: no stamps on disk
  135.      Set stamp error: file not found
  136.      Set stamp error: unknown
  137.  
  138. These messages simply signify that the filestamp was not preserved, and 
  139. attempt to provide clues as to why.  Most often the reason is that there are 
  140. no stamps on the destination disk.  This is only cause for concern if you 
  141. thought that there WERE stamps on the destination disk.  Other set stamp 
  142. errors should rarely occur.  If they do, make note of the circumstances and 
  143. attempt to remedy them.
  144.  
  145. One possible difficulty that is not the fault of the target system is "BIOS 
  146. sectors >1k".  If you get this error, your system reads and writes physical 
  147. sectors greater than 1 kilobyte in size, and JetCP must be modified to allow a 
  148. larger directory sector buffer in order to do file datestamping.  Otherwise no 
  149. datestamps will be preserved, although no harm should result from this type of 
  150. error (the file copy will still be intact).
  151.  
  152. Of course, if the source disk did not include valid file datestamps, no 
  153. attempt will be made to set the stamp of the target file, and none of these 
  154. errors will appear.
  155.  
  156.  
  157. 5.  PERFORMANCE.
  158.  
  159. I have used JetCP on a Morrow MD5 and an Osborne Executive, and find that 
  160. JetCP works significantly faster than currently available file copy programs 
  161. under Z3PLUS.  Typically JetCP runs about 1.25 times as fast as the best 
  162. conventional copy programs for CP/M.
  163.  
  164. Some of the same techniques could probably be implemented in a copy program 
  165. for CP/M 2.2-based systems, especially under ZSDOS and ZDDOS where extended 
  166. error handling is available.  Please feel free to use the source code in your 
  167. own programs, provided credit is given to me as original author.  Please don't 
  168. use the name JETCP for your project without my permission.
  169.  
  170.                                    - end -
  171.